#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>

int main()
{
    //不让系统屏蔽某些权限
    //umask(0);
    //以只写方式打开，如果文件不存在则创建,如果存在则清空
    //int fd1 = open("log.txt",O_WRONLY | O_CREAT | O_TRUNC,0666);
    int fd1 = open("log.txt",O_WRONLY | O_CREAT | O_APPEND,0666);
    if(fd1<0)
    {
        perror("open");
        return 0;
    }
    printf("fd1: %d\n",fd1);

    const char *message = "aaaaaa\n";

    write(fd1,message,strlen(message));
    close(fd1);
    return 0;
}



// #include <stdio.h>
// #include <sys/types.h>
// #include <sys/stat.h>
// #include <fcntl.h>
// #include <unistd.h>
// #include <string.h>

// int main()
// {
//     int a = 12345;
//     char buffer[1024];
//     snprintf(buffer,strlen(buffer),"%d",a);
//     write(1,buffer,strlen(buffer));
//     printf("\n");
//     // printf("stdin:%d\n",stdin->_fileno);
//     // printf("stdout:%d\n",stdout->_fileno);
//     // printf("stderr:%d\n",stderr->_fileno);
//     // FILE *fp = fopen("log.txt","w");
//     // printf("fp:%d\n",fp->_fileno);
//     // //abcd
//     // char buffer[128];
//     // ssize_t s = read(0,buffer,sizeof(buffer));
//     // if(s > 0)
//     // {
//     //     //把回车改为0
//     //     buffer[s-1] = 0;
//     //     printf("%s\n",buffer);
//     // }

//     // const char *message = "hello write\n";
//     // write(1,message,strlen(message));

//     // //不让系统屏蔽某些权限
//     // //umask(0);
//     // //以只写方式打开，如果文件不存在则创建,如果存在则清空
//     // //int fd1 = open("log.txt",O_WRONLY | O_CREAT | O_TRUNC,0666);
//     // int fd1 = open("log.txt",O_WRONLY | O_CREAT | O_APPEND,0666);
//     // int fd2 = open("log.txt",O_WRONLY | O_CREAT | O_APPEND,0666);
//     // int fd3 = open("log.txt",O_WRONLY | O_CREAT | O_APPEND,0666);
//     // int fd4 = open("log.txt",O_WRONLY | O_CREAT | O_APPEND,0666);
//     // if(fd1<0)
//     // {
//     //     perror("open");
//     //     return 0;
//     // }
//     // printf("fd1: %d\n",fd1);
//     // printf("fd2: %d\n",fd2);
//     // printf("fd3: %d\n",fd3);
//     // printf("fd4: %d\n",fd4);

//     // const char *message = "aaaaaa\n";

//     // write(fd1,message,strlen(message));
//     // close(fd1);
//     return 0;
// }

















// #define ONE (1<<0)//1
// #define TWO (1<<1)//2
// #define THREE (1<<2)//4
// #define FOUR (1<<3)//16
// #define FIVE (1<<4)//32

// //code 1
// void PrintTest(int flags)
// {
//     //都为1才为1，只要有一个不为1，就为0
//     if(flags & ONE)
//     {
//         printf("one\n");
//     }
//     if(flags & TWO)
//     {
//         printf("two\n");
//     }
//     if(flags & THREE)
//     {
//         printf("three\n");
//     }
//     if(flags & FOUR)
//     {
//         printf("four\n");
//     }
//     if(flags & FIVE)
//     {
//         printf("five\n");
//     }
// }

// int main()
// {
//     printf("=====================\n");
//     PrintTest(ONE);
//     printf("=====================\n");
//     PrintTest(TWO);
//     printf("=====================\n");
//     PrintTest(THREE);
//     printf("=====================\n");
//     //只要两个操作数对应的位中有一个为1，那么结果位就为1。
//     PrintTest(ONE | THREE);
//     printf("=====================\n");
//     PrintTest(ONE | TWO | THREE);
//     printf("=====================\n");
//     PrintTest(ONE | TWO | THREE | FOUR);
//     printf("=====================\n");
//     return 0;
// }